package com.lagou.zuoyes1m3;

import java.util.*;

public class StudentsFunction implements StudentsCtrl<Students> {

    //增加
    @Override
    public void add(List<Students> students) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生的学号：");

        Integer i = scanner.nextInt();

        //遍历集合看是否已经存在
        for (Students s : students) {
            if (i.equals(s.getId())) {
                System.out.println("学生信息已存在！");
                return;
            }
        }

        //如果不存在，将信息存入集合
        Students ss = new Students();
        ss.setId(i);
        System.out.println("请输入学生的姓名：");
        ss.setName(scanner.next());
        System.out.println("请输入学生的年龄：");
        ss.setAge(scanner.nextInt());
        students.add(ss);
        System.out.println("您输入的信息是：");
        System.out.println(ss);

    }

    //删除
    @Override
    public void delete(List<Students> students) {
        //判断集合是否为空
        if (students.isEmpty()) {
            System.out.println("对不起，系统暂无数据！");
            return;
        }

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入将要删除学生的学号：");
        Integer i = scanner.nextInt();

        //遍历集合是否存在学生信息     先查找元素的位置，再获取元素的Id
        for (int j = 0; j < students.size(); j++) {
            if (i.equals(students.get(j).getId())) {
                //如果存在则删除       集合中获取指定位置元素，然后查找指定参数，删除
                students.remove(students.indexOf(students.get(j)));
                System.out.println("删除成功！");
                return;
            }
        }
        System.out.println("学生信息不存在！");

        //在这里用foreach会发生异常java.util.ConcurrentModificationException
//        for (Students s : students) {
//            if (!(i.equals(s.getId()))) {
//                students.remove(students.indexOf(s));
//                return;
//            }
//        }
//                System.out.println("学生不存在");
    }

    //修改
    @Override
    public Students update(List<Students> students) {
        //判断集合是否为空
        if (students.isEmpty()) {
            System.out.println("对不起，系统暂无数据！");
            return null;
        }

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入将要修改学生的学号：");
        Integer i = scanner.nextInt();

        //遍历集合判断信息是否存在
        for (Students s : students) {
            if (i.equals(s.getId())) {
                //找到学生信息，修改后再返回
                Students students1 = students.get(students.indexOf(s));
                System.out.println(students1);
                System.out.println("新学号：");
                s.setId(scanner.nextInt());
                System.out.println("新姓名：");
                s.setName(scanner.next());
                System.out.println("新年龄：");
                s.setAge(scanner.nextInt());
                return students1;
            }
        }
        System.out.println("学生信息不存在！");
        return null;
    }

    //查找
    @Override
    public Students findById(List<Students> students) {
        //判断集合是否为空
        if (students.isEmpty()) {
            System.out.println("对不起，系统暂无数据！");
            return null;
        }

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入将要查找学生的学号：");
        Integer i = scanner.nextInt();

        //遍历集合判断信息是否存在
        for (Students s : students) {
            if (i.equals(s.getId())) {
                //如果存在则返回
                return students.get(students.indexOf(s));
            }
        }
        System.out.println("学生信息不存在！");
        return null;
    }

    //遍历
    @Override
    public void findAll(List<Students> students) {
        //判断集合是否为空
        if (students.isEmpty()) {
            System.out.println("对不起，系统暂无数据！");
            return;
        }

        //遍历集合
        System.out.println("学生信息如下：");
        for (Students s : students) {
            System.out.println(s);
        }

    }
}
